#pragma once
#include <vector>
#include <GL/glut.h>


class spotLight
{
public:
	static int spotLight::numLights;
	static const enum lightProperties{AMBIENT, DIFFUSE, SPECULAR};

	spotLight(void);
	void setCutOffAngle(GLfloat angle);
	void setAttenuation(GLfloat value);
	void setPosition(GLfloat x, GLfloat y, GLfloat z);
	void setDirection(GLfloat x, GLfloat y, GLfloat z);
	void setLightProperty(lightProperties lp, GLfloat red, GLfloat green, GLfloat blue);
	void setLightProperty(int lp, GLfloat red, GLfloat green, GLfloat blue);
	GLfloat getXPos();
	GLfloat getYPos();
	GLfloat getZPos();
	GLfloat getXDir();
	GLfloat getYDir();
	GLfloat getZDir();
	void turnOn();
	void turnOff();
	~spotLight(void);

private:
	GLenum lightNumber;

	GLfloat spotCutOff;
	GLfloat quad_attenuation;

	std::vector<GLfloat>* ambient;
	std::vector<GLfloat>* diffuse;
	std::vector<GLfloat>* specular;
	std::vector<GLfloat>* position;
	std::vector<GLfloat>* direction;
};


